import { APP_CONFIG, AUTH_KEY } from '@/common/config.js'
import { Cache } from '@/utils/util'
// 此vm参数为页面的实例，可以通过它引用vuex中的变量
module.exports = vm => {
	// 初始化请求配置
	uni.$u.http.setConfig(config => {
		/* config 为默认全局配置*/
		config.header = {
			'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
		}
		config.baseURL = APP_CONFIG.BASE_URL /* 根域名 */
		return config
	})

	// 请求拦截
	uni.$u.http.interceptors.request.use(
		config => {
			let token = uni.getStorageSync('token')
			config.data = { token: token, ...config.data }
			return config
		},
		config => {
			// 可使用async await 做异步操作
			return Promise.reject(config)
		}
	)

	// 响应拦截
	uni.$u.http.interceptors.response.use(
		response => {
			/* 对响应成功做点什么 可使用async await 做异步操作*/
			const data = response.data
			console.log(data)
			if (data.code === 110) {
				vm.$Router.replaceAll({
					path: '/login',
				})
			}
			if (data.code !== 0) {
				return Promise.reject(data)
			}
			// 自定义参数
			return data === undefined ? {} : data
		},
		response => {
			if (data.code !== 0) {
			}
			// 对响应错误做点什么 （statusCode !== 200）
			return Promise.reject(response)
		}
	)
}
